// 导入重置样式
require("../../assets/css/reset.css")
// 引入公共样式
require("../../assets/css/basic.css")
// 引入矢量图
require("../../assets/fonts1/iconfont.css")
// 引入当前页面的样式
require("./exercising.less")

// 引入dom
const dom = require("../../utils/dom.js");
// 引入axios模块
const axios = require("../../utils/axios.js");

window.addEventListener("DOMContentLoaded", () => {
    // 1.地理定位
    AMap.plugin('AMap.Geolocation', function() {
        var geolocation = new AMap.Geolocation({
          enableHighAccuracy: true, // 是否使用高精度定位，默认：true
          timeout: 3000, // 设置定位超时时间，默认：无穷大
          offset: [10, 20],  // 定位按钮的停靠位置的偏移量
          zoomToAccuracy: true,  //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见，默认：false
          position: 'RB' //  定位按钮的排放位置,  RB表示右下
        })
      
        geolocation.getCurrentPosition(function(status,result){
              if(status=='complete'){
                  onComplete(result);
                //   console.log("定位成功",result);
              }else{
                  onError(result);
                //   console.log("定位失败",result);
              }
        });
      
        function onComplete (data) {
          // data是具体的定位信息
        }
      
        function onError (data) {
          // 定位出错
        }
    })

    // 2.计算距离
    var p1 = [116.434027, 39.941037];
    var p2 = [116.461665, 39.941564];
    // 返回 p1 到 p2 间的地面距离，单位：米
    var dis = AMap.GeometryUtil.distance(p1, p2);
    // console.log("地面距离",dis);

    // 3.定时器模拟跑步数据
    let n = 0;  //用一个变量保存用时
    let kcal = 0;  //用一个变量保存千卡
    let meter =0;  //用一个变量保存米
    let s=0;  //保存秒数
    function getRand(min, max){
        return Math.floor(Math.random() * (max - min + 1) + min);
    }
    function timer(){
        time = setInterval(function(){
            let speed = getRand(3, 9);
            dom.get(".speed").textContent = speed + "m/s";  //配速
            
            n++;
            dom.get(".times").textContent = n;  //用时
        
            kcal += speed;
            dom.get(".kcal").textContent = Math.floor(60 * (kcal/1000) * 1.036);  //千卡
    
            meter += speed;
            dom.get(".meter").textContent = (meter/1000).toFixed(2);

            // 秒数转换为时分秒
            function getHMS(second){
                s += second;
                let hours = 0;  //定义一个变量保存 小时
                //获取分钟，除以60取整数，得到整数分钟
                let minutes = zeroFill(Math.floor(s/60));  //分钟
                //获取秒数，秒数取余，得到整数秒数
                let seconds = zeroFill(s%60);  //秒
                //如果分钟大于60，将分钟转换成小时
                if(minutes > 60){
                    // 获取小时整数
                    hours = zeroFill(Math.floor(minutes/60));
                    // 获取小时后取余的分钟数
                    minutes = zeroFill(minutes % 60);
                }
                // 补零  如果小于10就在数字前面加一个零
                function zeroFill(n){
                    return n < 10 ? "0" + n : n;
                }
                dom.get(".times").textContent = `${hours}:${minutes}:${seconds}`
            }
            getHMS(speed);
        }, 1000);
    };
    timer();

    // 4.点击暂停按钮  暂停计时
    dom.get("#pause").addEventListener("click", function(){
        dom.get("#pause").style.display = "none";
        dom.get(".icon-suoding").style.display = "none";
        dom.get("#goon").style.display = "block";
        dom.get("#over").style.display = "block";
        clearInterval(time);
    })

    // 5.点击继续按钮切回暂停按钮页面  继续计时
    dom.get("#goon").addEventListener("click", function(){
        dom.get("#pause").style.display = "block";
        dom.get(".icon-suoding").style.display = "block";
        dom.get("#goon").style.display = "none";
        dom.get("#over").style.display = "none";
        timer();
    })

    // 6.点击结束按钮结束
    dom.get("#over").addEventListener("click", function(){
        location.href = "exercising_over.html";
    })

    
    //   7.保存运动数据
    axios.post("/api/exercise/save",{
        type: 0,  //运动类型0跑步
        duration: s,  //运动时长，单位秒
        calorie: kcal,  //消耗卡路里，单位卡
        meter: meter, //运动距离，如跑步、骑行距离，单位米
    }).then(res => {
        if(res.data.errno === 0){
            // console.log(res)
        }
    })
})